<template>
  <div >
      <!--查询-->
      <nf_find :moduleId="moduleId"/>
      <!--按钮-->
      <nf_button :moduleId="moduleId"/>

      <!--列表-->
      <nf_grid
        v-bind="girdMeta"
        :data-list="dataList"
        :selection="dataListState.choice"
      />
      <!--分页-->
      <nf_pager/>
  </div>
</template>

<script>
import { defineProps, nextTick, reactive, watch } from 'vue'
// 加载json
import loadJson from './control/loadjson.js'

// 控制函数
import dataListManage from './control/data-list.js'

// 查询组件
import find from './find.vue'
// 按钮组件
import mybutton from './buttons.vue'
// 列表控件
// eslint-disable-next-line import/no-absolute-path
import elGridList from '/ctrl/nf-el-grid/nf-el-grid-list.vue'
// 分页组件
import pager from './pager.vue'

</script>

<script setup>
  const nf_find = find
  const nf_button = mybutton
  const nf_grid = elGridList
  const nf_pager = pager

  // 属性：模块ID
  const props = defineProps({
    moduleId:  [Number, String]
  })
  // 列表用的 meta
  const girdMeta = reactive({reload:false})
  // 依据模块ID，加载meta
  loadJson(props.moduleId, 'grid', girdMeta)

  // 列表的状态管理类
  const {
    regDataListState, // 注册列表状态
    dataList, // 数据列表
    setHotkey // 设置快捷键
  } = dataListManage(props.moduleId)

  // 注册列表状态
  const dataListState = regDataListState()
  // 设置快捷键
  setHotkey(dataListState)

</script>
